home *** CD-ROM | disk | FTP | other *** search
/ Software 2000 / Software 2000 Volume 1 (Disc 1 of 2).iso / utilities / u600.dms / u600.adf / Doc / A64Mon next >
Text File  |  1991-10-01  |  13KB  |  442 lines

  1.  
  2.  
  3.  
  4.  
  5. A64Mon
  6.  
  7.     KEY SEQUENCE: [F9]
  8.     Key sequence can be done from both A64 and A64 Prefs.
  9.  
  10.     The A64MON menu option allows you to enter A64Mon.
  11.  
  12.     WARNING: A64Mon is geared towards the more experienced C64 user
  13.              and this section of the manual assumes that your are
  14.              familiar with the C64's architecture and 6510 machine
  15.              language.  A64Mon should be used with caution, you can
  16.              cause a "C64 crash" while using it.
  17.  
  18.     A64Mon is a powerful utility program that allows you to examine,
  19.     at the machine level, any C64 program that A64 is running.
  20.     A64Mon is much like many machine language monitors available for
  21.     the C64, except that A64Mon runs totally transparent to the C64
  22.     program.
  23.  
  24.     The A64Mon screen can be broken down into three areas that we'll
  25.     call "windows."  The three windows are:
  26.  
  27. 6510 STATUS WINDOW
  28.  
  29.     At the top of the A64Mon screen small window used to display the
  30.     C64's 6510 microprocessor status.  In this window the 6510's
  31.     Program Counter (PC), Accumulator (A), X Register (X), Y Register
  32.     (Y), Stack Pointer (SP) and Status Register (SR) are displayed.
  33.     These values will show the status of the 6510 when A64Mon was
  34.     entered.  All of the values are straight forward except for the
  35.     status register (SR).  The SR is displayed by using a one letter
  36.     abbreviation for each of the status flags.  The flags are;
  37.     N: Negative, V: Overflow, B: Break, D: Decimal Mode, I: Interrupt
  38.     Enable, Z: Zero and C: Carry.  When a flag is set it will be
  39.     highlighted in yellow and when a flag is clear it will appear
  40.     unhighlighted in white.
  41.  
  42. SCREEN EDITOR WINDOW
  43.  
  44.     Below the 6510 status window is a large window that covers most
  45.     of the left side of the A64Mon screen.  This window is A64Mon's
  46.     screen editor.  This is where you enter commands and receive
  47.     their output.  In the window will be a yellow square, this is the
  48.     screen editor's cursor.  You can freely move this cursor around
  49.     in the editor window by using either the keyboard or mouse.  Note
  50.     that you can only move to a line that starts with a period.
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.                                                                  3-42
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.     The following keyboard sequences can be used in the editor
  69.     window:
  70.  
  71.     [LEFT AMIGA][C]:    Clear the editor window
  72.     [LEFT AMIGA][L]:    Clear the current line, from the cursor
  73.                         position to the end of the line
  74.     [CRSR UP]:          Move up 1 line, if the current command is
  75.                         repeatable do it backward for 1 line.
  76.     [SHIFT][CRSR UP]:   Move up 1 page, if the current command is
  77.                         repeatable do it backward for 1 page.
  78.     [CRSR DOWN]:        Move down 1 line, if the current command is
  79.                         repeatable do it forward for 1 line.
  80.     [SHIFT][CRSR DOWN]: Move down 1 page, if the current command is
  81.                         repeatable do it forward for 1 page.
  82.  
  83. COMMAND STATUS WINDOW
  84.  
  85.     Below the screen editor window is the command status window.
  86.     This window is used to show messages concerning the commands. 
  87.  
  88. A64MON COMMANDS
  89.  
  90.     A64Mon supports a number of commands that allow you to examine
  91.     and/or change the C64's memory map.  Here is a brief summary of
  92.     A64Mon's commands:
  93.  
  94.         COMMAND  SHORT USAGE
  95.         -------  ----- -----
  96.         Disasm     D   Disasm [start] [end]   
  97.         Peek       PE  Peek <addr>            
  98.         Poke       PO  Poke <addr>,<value>    
  99.         OpenFile   OF  OpenFile <filename>    
  100.         CloseFile  CF  CloseFile              
  101.         IntVecs    IV  IntVecs                
  102.         MemCntrl   MC  MemCntrl               
  103.         HexDump    HD  HexDump [start] [end]  
  104.         CIADump    CD  CIADump                
  105.         SIDDump    SD  SIDDump                
  106.         VICDump    VD  VICDump                
  107.         Hex            Hex                    
  108.         Dec            Dec                    
  109.         Exit       X   Exit                   
  110.  
  111.     All of A64Mon's commands are explained in the following sections.
  112.  
  113.     NOTE: A64Mon is still in development and its command set will be
  114.           expanded in the future.  We want to include features like:
  115.           Trace, Break Points, Assemble, Load and Save, etc.  If you
  116.           would like to see a feature added to A64Mon let us know.
  117.           With a program like A64Mon the possibilities are endless.
  118.  
  119.  
  120.  
  121.                                                                  3-43
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131. COMMAND NOTES
  132.  
  133.     In the editor window you can type ? [RETURN] to get a list of
  134.     A64Mon's commands or type a command name followed by a ? [RETURN]
  135.     to get that command's usage.
  136.     
  137.     Most of A64Mon's commands have a short form of their name, for
  138.     example Disasm can be abbreviated with just D.
  139.  
  140.     Throughout this section of the manual reference is made to a
  141.     "page."  A page is defined as one editor screen of information.
  142.  
  143.     A64Mon uses a default number base, either decimal or hexadecimal,
  144.     for all of its input and output.  This default number base can
  145.     be changed with the Hex and Dec commands.  The default number
  146.     base is shown by displaying a single letter in A64Mon's title
  147.     bar.  The letter will either be "H" for Hexadecimal or "D" for
  148.     Decimal.
  149.  
  150.     Commands that use numbers for parameters can accept any
  151.     combination of Hexadecimal and Decimal numbers.  Hexadecimal
  152.     numbers are denoted by a "$" and Decimal numbers are denoted by
  153.     a "#".  If no symbol is used then the default number base will be
  154.     used to determine a numbers base.
  155.  
  156.     A64Mon uses a "current address" for its commands that require
  157.     addresses.  For example, Disasm and HexDump.  The current address
  158.     starts at the address held in the 6510's PC and changes whenever
  159.     a command is used that uses addresses.
  160.  
  161.     Some of A64Mon's commands are repeatable.  Meaning if you enter a
  162.     repeatable command its output can be continued using the cursor
  163.     keys or mouse.  For example if you enter: Disasm 0 100 [RETURN]
  164.     You can then continue disassembling at the end address by either
  165.     using the cursor keys or the mouse.  To use the mouse, hold down
  166.     the left mouse bottom and move the mouse at either the top or
  167.     bottom of the editor window.  Repeatable commands can either
  168.     move forward or backward through memory.  The current repeatable
  169.     commands are Disasm, HexDump and sometimes VICDump.  See the
  170.     descriptions of these commands for more information.  Entering
  171.     any non-repeatable command will terminate the repeatable feature
  172.     of a repeatable command.
  173.  
  174.     All of A64Mon's commands that deal with the C64 memory map use
  175.     the map's current configuration.  If you wish to read or write to
  176.     a portion of the memory map that is not currently banked in, you
  177.     must switch in the desired bank yourself.  You should also
  178.     restore the memory map configuration before exiting A64Mon (See
  179.     the MEMCNTRL, PEEK and POKE commands).
  180.  
  181.     You can terminate a command by pressing the [ESC] key.
  182.  
  183.  
  184.                                                                  3-44
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.     You can pause a command by pressing the [SPACE BAR], pressing the
  196.     [SPACE BAR] again will allow the command to resume.
  197.  
  198.     Commands and parameters are not case sensitive.
  199.  
  200.     Commands and parameters should be separated by one or more spaces.
  201.  
  202. DISASM
  203.  
  204.     USAGE: Disasm [start] [end]   
  205.  
  206.     Disasm allows you to disassemble a portion of the C64's memory
  207.     map.  It uses two optional parameters:
  208.  
  209.         [start]  Address to start the disassemble, if not specified
  210.                  the current address will be used.
  211.         [end]    Address to end the disassemble, if not specified
  212.                  A64Mon will disassemble one page starting at the
  213.                  start address.
  214.  
  215.     Disasm is a repeatable command (See COMMAND NOTES in the A64Mon
  216.     section), but you should note the Disassembles that move
  217.     backwards in memory will not always be correct.  You should only
  218.     disassemble backwards in memory to move to an address, afterwards
  219.     you should then do a disassemble forward one page to get an
  220.     accurate disassembly.
  221.  
  222. PEEK
  223.  
  224.     USAGE: Peek <addr>            
  225.  
  226.     Peek allows you to read a memory location's contents.  It uses
  227.     one required parameter:
  228.  
  229.         <addr>  The address to read.
  230.  
  231. POKE
  232.  
  233.     USAGE: Poke <addr>,<value>    
  234.  
  235.     Poke allows you to modify a memory location's contents.  It uses
  236.     two required parameters:
  237.  
  238.         <addr>   The address to write to.
  239.         <value>  The value to write.
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.                                                                  3-45
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257. OPENFILE
  258.  
  259.     USAGE: OpenFile <filename>    
  260.  
  261.     OpenFile allows you to redirect all of A64Mon's output to a file
  262.     or device.  It uses one required parameter:
  263.  
  264.         <filename>  The name of the file or device to redirect
  265.                     A64Mon's output to.  The filename can be any
  266.                     legal AmigaDOS path name limited to the length of
  267.                     the editor line.  Valid filenames include:
  268.                     RAM:testfile and PRT:. 
  269.  
  270.     When a file is open a letter "F" will appear in A64Mon's title
  271.     bar.
  272.  
  273.     See: CLOSEFILE below.
  274.  
  275.     IMPORTANT NOTE: If output is redirected to a parallel printer you
  276.                     must make sure you close the file before exiting
  277.                     back to A64 or you may be visited by the GURU.
  278.                     This is caused by a bug in the V1.3 OS (See KNOWN
  279.                     BUGS in the TECHNICAL section for more
  280.                     information).
  281.  
  282. CLOSEFILE
  283.  
  284.     USAGE: CloseFile
  285.  
  286.     CloseFile allows you to close a previously opened file.  It uses
  287.     no parameters.
  288.  
  289.     If you exit A64Mon without closing an open file it will be
  290.     automatically closed.
  291.  
  292.     See: OPENFILE above.
  293.  
  294. INTVECS
  295.  
  296.     USAGE: IntVecs
  297.  
  298.     IntVecs allows you to view the C64's current IRQ and NMI
  299.     interrupt vectors.  It uses no parameters.
  300.  
  301.     IntVecs output will vary depending on the C64's current memory
  302.     map configuration.  If the KERNAL ROM is switched in the IntVecs
  303.     command will print two addresses for each type of interrupt, the
  304.     first one being the ROM address of the corresponding interrupt
  305.     and the second number being the contents of the RAM vectors at
  306.     $314 for IRQs and $318 for NMIs.  If the KERNAL ROM is switched
  307.     out, the IntVecs command will only print one address for each
  308.  
  309.  
  310.                                                                  3-46
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.     type of interrupt, the RAM address of the corresponding
  321.     interrupt.
  322.  
  323. MEMCNTRL
  324.  
  325.     USAGE: MemCntrl
  326.  
  327.     MemCntrl allows you view the C64's current memory map
  328.     configuration.  It uses no parameters.
  329.  
  330. HEXDUMP
  331.  
  332.     USAGE: HexDump [start] [end]  
  333.  
  334.     HexDump allows you to dump a portion of the C64's memory map
  335.     in a number and PetASCII format.  It uses two optional
  336.     parameters:
  337.  
  338.         [start]  Address to start the HexDump, if not specified the
  339.                  current address will be used.
  340.         [end]    Address to end the HexDump, if not specified A64Mon
  341.                  will do the dump for one page starting at the start
  342.                  address.
  343.  
  344.     Non-printable PetASCII chars will be shown with an "_".
  345.  
  346.     HexDump is a repeatable command (See COMMAND NOTES in the A64Mon
  347.     section).
  348.  
  349. CIADUMP
  350.  
  351.     USAGE: CIADump
  352.  
  353.     CIADump allows you to view the contents of the C64's CIA chips.  It
  354.     uses no parameters.
  355.  
  356. SIDDUMP
  357.  
  358.     USAGE: SIDDump
  359.  
  360.     SIDDump allows you to view the contents of the C64's SID chip.
  361.     It uses no parameters.
  362.  
  363.     This command can be real useful considering it allows you to read
  364.     all of the current SID chip values which are write only on a C64.
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.                                                                  3-47
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383. VICDUMP
  384.  
  385.     USAGE: VICDump
  386.  
  387.     VICDump allows you to view the contents of the C64's VIC chip.
  388.     It uses no parameters.
  389.  
  390.     The VICDump command can be a repeatable command (See COMMAND
  391.     NOTES in the A64Mon section).  If the C64 program that is running
  392.     uses raster interrupts the VICDump command is capable of
  393.     displaying a dump of each screen section defined by the raster
  394.     IRQs.  Use the cursor keys or mouse to move through the different
  395.     dumps.
  396.  
  397. HEX
  398.  
  399.     USAGE: Hex
  400.  
  401.     Hex will allow you to change A64Mon's default number base to
  402.     Hexadecimal (See COMMAND NOTES in the A64Mon section).  It uses
  403.     no parameters.
  404.  
  405. DEC
  406.  
  407.     USAGE: Dec
  408.  
  409.     Dec will allow you to change A64Mon's default number base to
  410.     Decimal (See COMMAND NOTES in the A64Mon section).  It uses
  411.     no parameters.
  412.  
  413. EXIT
  414.  
  415.     USAGE: Exit
  416.  
  417.     Exit will allow you to exit A64Mon.  It uses no parameters.
  418.  
  419.     If A64Mon was entered from A64Prefs you will be returned to
  420.     A64Prefs.  If A64Mon was entered directly from A64 you will be
  421.     returned to A64.
  422.  
  423.     A64Mon's only menu option, Exit, performs the same operation
  424.     as the Exit command.
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.                                                                  3-48
  437.  
  438.  
  439.  
  440.  
  441.  
  442.